package com.cy.pj.common.bo;

import java.io.Serializable;
import java.util.List;

import lombok.AllArgsConstructor;
import lombok.Data;
/***
 * 基于此对象封装业务的执行结果
 * 在Java语言,可以简单将内存中的对象分为两大类:
 * 1)存储数据的对象(设计的关键在属性上) 典型的POJO(VO BO DO)
 * 2)执行业务的对象(设计的关键在方法上) 典型的controller(),service,dao
 * 
 */
@Data
@AllArgsConstructor
public class PageObject<T> implements Serializable {//pojo中的BO对象
	
	private static final long serialVersionUID = -1000563874827068704L;
	/** 当前页的页码值(客户端传递) */
	private Integer pageCurrent;
	/** 页面大小(每页可以呈现的记录总数)*/
	private Integer pageSize; 
	/** 总行数 (从数据库查询获得)*/
	private Integer rowCount;
	/** 总页数(通过计算获得 基于rowCount和页面大小计算出来的) */
	private Integer pageCount; 
	/** 当前页记录 */
	private List<T> records;
	
	public PageObject() {}
	
	public PageObject(Integer pageCurrent, Integer pageSize, Integer rowCount, List<T> records) {
		super();
		this.pageCurrent = pageCurrent;
		this.pageSize = pageSize;
		this.rowCount = rowCount;
		this.records = records;
		
		this.pageCount=(rowCount-1)/pageSize+1;//?
		
//		this.pageCount=rowCount/pageSize;
//		if(rowCount%pageSize!=0) {
//			pageCount++;
//		}
		
	}
	
	
}
